// ****************************************************************************** 
// Copyright     :  Copyright (C) 2018, Hisilicon Technologies Co. Ltd.
// File name     :  vctrl_c_union_define.h
// Project line  :  K3
// Department    :  K3
// Author        :  Huawei
// Version       :  V100
// Date          :  2015/4/10
// Description   :  HiVcodecV100 VDEC
// Others        :  Generated automatically by nManager V4.2 
// History       :  Huawei 2018/04/10 10:02:40 Create file
// ******************************************************************************

#ifndef __VCTRL_C_UNION_DEFINE_H__
#define __VCTRL_C_UNION_DEFINE_H__

/* Define the union U_VDH_START_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_0     : 31  ; /* [31:1] */
        unsigned int    dec_start : 1  ; /* [0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VDH_START_CNT;

/* Define the union U_SLC_START_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_1         : 31  ; /* [31:1] */
        unsigned int    slc_grp_start : 1  ; /* [0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_SLC_START_CNT;

/* Define the union U_BASIC_CFG0_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    vdh_safe_flag        : 1  ; /* [31] */
        unsigned int    ld_qmatrix_flag      : 1  ; /* [30] */
        unsigned int    luma_histogram_en    : 1  ; /* [29] */
        unsigned int    luma_sum_en          : 1  ; /* [28] */
        unsigned int    work_mode            : 2  ; /* [27:26] */
        unsigned int    vop_type_detect_en   : 1  ; /* [25] */
        unsigned int    coef_idx_detect_en   : 1  ; /* [24] */
        unsigned int    ac_last_detect_en    : 1  ; /* [23] */
        unsigned int    marker_bit_detect_en : 1  ; /* [22] */
        unsigned int    rsv_2                : 1  ; /* [21] */
        unsigned int    slc_grp_mode         : 1  ; /* [20] */
        unsigned int    mbamt_to_dec         : 20  ; /* [19:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_BASIC_CFG0_CNT;

/* Define the union U_BASIC_CFG1_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    ppfd_en        : 1  ; /* [31] */
        unsigned int    compress_en    : 1  ; /* [30] */
        unsigned int    dblk_1d_en     : 1  ; /* [29] */
        unsigned int    line_num_oen   : 1  ; /* [28] */
        unsigned int    max_slcgrp_num : 12  ; /* [27:16] */
        unsigned int    mv_output_en   : 1  ; /* [15] */
        unsigned int    fst_slc_grp    : 1  ; /* [14] */
        unsigned int    uv_order_en    : 1  ; /* [13] */
        unsigned int    mfd_mmu_en     : 1  ; /* [12] */
        unsigned int    vpss_info_en   : 1  ; /* [11] */
        unsigned int    watermark_en   : 1  ; /* [10] */
        unsigned int    cfg1_reserved  : 6  ; /* [9:4] */
        unsigned int    video_standard : 4  ; /* [3:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_BASIC_CFG1_CNT;

/* Define the union U_AVM_ADDR_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    av_msg_addr : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_AVM_ADDR_CNT;

/* Define the union U_VAM_ADDR_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    va_msg_addr : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VAM_ADDR_CNT;

/* Define the union U_STREAM_BASE_ADDR_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    stream_base_addr : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_STREAM_BASE_ADDR_CNT;

/* Define the union U_VDH_STATE_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_3                        : 9  ; /* [31:23] */
        unsigned int    safe_intrs_vdh_part_dec_over : 1  ; /* [22] */
        unsigned int    safe_intrs_vdh_dec_err       : 1  ; /* [21] */
        unsigned int    safe_intrs_vdh_dec_over      : 1  ; /* [20] */
        unsigned int    intrs_vdh_part_dec_over      : 1  ; /* [19] */
        unsigned int    intrs_vdh_dec_err            : 1  ; /* [18] */
        unsigned int    intrs_vdh_dec_over           : 1  ; /* [17] */
        unsigned int    decoded_slice_num            : 17  ; /* [16:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VDH_STATE_CNT;

/* Define the union U_NORM_INT_STATE */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_4                         : 29  ; /* [31:3] */
        unsigned int    norm_intrms_vdh_part_dec_over : 1  ; /* [2] */
        unsigned int    norm_intrms_vdh_dec_err       : 1  ; /* [1] */
        unsigned int    norm_intrms_vdh_dec_over      : 1  ; /* [0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_NORM_INT_STATE;

/* Define the union U_NORM_INT_MASK */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_5                       : 29  ; /* [31:3] */
        unsigned int    norm_intm_vdh_part_dec_over : 1  ; /* [2] */
        unsigned int    norm_intm_vdh_dec_err       : 1  ; /* [1] */
        unsigned int    norm_intm_vdh_dec_over      : 1  ; /* [0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_NORM_INT_MASK;

/* Define the union U_VCTRL_STATE_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_6       : 22  ; /* [31:10] */
        unsigned int    vctrl_state : 10  ; /* [9:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VCTRL_STATE_CNT;

/* Define the union U_VDH_VERSION_ID */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    vdh_version_id : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VDH_VERSION_ID;

/* Define the union U_CFMW_REG_CMP_THR */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    cfmw_reserved     : 20  ; /* [31:12] */
        unsigned int    lst_msq_mb_num    : 4  ; /* [11:8] */
        unsigned int    mb_offset_thr     : 4  ; /* [7:4] */
        unsigned int    y_dcmp_rate_mode  : 2  ; /* [3:2] */
        unsigned int    uv_dcmp_rate_mode : 2  ; /* [1:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_CFMW_REG_CMP_THR;

/* Define the union U_RPT_CNT_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_7           : 12  ; /* [31:20] */
        unsigned int    max_cnt_other   : 5  ; /* [19:15] */
        unsigned int    max_cnt_prc     : 5  ; /* [14:10] */
        unsigned int    max_cnt_dblk_wr : 5  ; /* [9:5] */
        unsigned int    max_cnt_dblk_rd : 5  ; /* [4:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_RPT_CNT_CNT;

/* Define the union U_VCTRL_TO_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_8       : 12  ; /* [31:20] */
        unsigned int    vctrl_wr_to : 10  ; /* [19:10] */
        unsigned int    vctrl_rd_to : 10  ; /* [9:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VCTRL_TO_CNT;

/* Define the union U_SED_TO_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_9            : 2  ; /* [31:30] */
        unsigned int    sed_wr_top_to    : 10  ; /* [29:20] */
        unsigned int    sed_rd_top_to    : 10  ; /* [19:10] */
        unsigned int    sed_rd_stream_to : 10  ; /* [9:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_SED_TO_CNT;

/* Define the union U_IT_TO_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_10   : 12  ; /* [31:20] */
        unsigned int    it_wr_to : 10  ; /* [19:10] */
        unsigned int    it_rd_to : 10  ; /* [9:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_IT_TO_CNT;

/* Define the union U_PMV_TO_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_11        : 2  ; /* [31:30] */
        unsigned int    pmv_wr_to     : 10  ; /* [29:20] */
        unsigned int    pmv_rd_top_to : 10  ; /* [19:10] */
        unsigned int    pmv_rd_col_to : 10  ; /* [9:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_PMV_TO_CNT;

/* Define the union U_PRC_TO_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_12    : 22  ; /* [31:10] */
        unsigned int    prc_rd_to : 10  ; /* [9:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_PRC_TO_CNT;

/* Define the union U_RCN_TO_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_13    : 12  ; /* [31:20] */
        unsigned int    rcn_wr_to : 10  ; /* [19:10] */
        unsigned int    rcn_rd_to : 10  ; /* [9:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_RCN_TO_CNT;

/* Define the union U_DBLK_TO_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_14     : 12  ; /* [31:20] */
        unsigned int    dblk_wr_to : 10  ; /* [19:10] */
        unsigned int    dblk_rd_to : 10  ; /* [9:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_DBLK_TO_CNT;

/* Define the union U_PPFD_TO_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_15           : 2  ; /* [31:30] */
        unsigned int    ppfd_wr_buf_to   : 10  ; /* [29:20] */
        unsigned int    ppfd_rd_buf_to   : 10  ; /* [19:10] */
        unsigned int    ppfd_rd_slice_to : 10  ; /* [9:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_PPFD_TO_CNT;

/* Define the union U_FPGA_VERSION */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    fpga_version_id : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_FPGA_VERSION;

/* Define the union U_PART_OVER_INT_LEVEL */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    part_over_int_level : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_PART_OVER_INT_LEVEL;

/* Define the union U_YSTADDR_1D_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    ystaddr_1d : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_YSTADDR_1D_CNT;

/* Define the union U_YSTRIDE_1D_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    ystride_reserved : 12  ; /* [31:20] */
        unsigned int    ystride_1d       : 20  ; /* [19:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_YSTRIDE_1D_CNT;

/* Define the union U_UVOFFSET_1D_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    uvoffset_1d : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_UVOFFSET_1D_CNT;

/* Define the union U_HEAD_OFFSET_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    head_offset : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_HEAD_OFFSET_CNT;

/* Define the union U_LINE_NUM_STADDR_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    line_num_staddr : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_LINE_NUM_STADDR_CNT;

/* Define the union U_YSTRIDE_2BIT_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    ystride_2bit_reserved : 12  ; /* [31:20] */
        unsigned int    ystride_2bit          : 16  ; /* [19:4] */
        unsigned int    rsv_16                : 4  ; /* [3:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_YSTRIDE_2BIT_CNT;

/* Define the union U_YOFFSET_2BIT_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    yoffset_2bit : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_YOFFSET_2BIT_CNT;

/* Define the union U_UVOFFSET_2BIT_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    uvoffset_2bit : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_UVOFFSET_2BIT_CNT;

/* Define the union U_YSTADDR_CMPA */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    ystaddr_cmpa : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_YSTADDR_CMPA;

/* Define the union U_YSTRIDE_CMPA */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    ystride_cmpa : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_YSTRIDE_CMPA;

/* Define the union U_UVOFFSET_CMPA */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    uvoffset_cmpa : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_UVOFFSET_CMPA;

/* Define the union U_HEAD_STRIDE_CMPA */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    head_stride_cmpa : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_HEAD_STRIDE_CMPA;

/* Define the union U_LOSS_CMP_CFG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_17         : 30  ; /* [31:2] */
        unsigned int    bit10_2bit_dis : 1  ; /* [1] */
        unsigned int    loss_cmp_en    : 1  ; /* [0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_LOSS_CMP_CFG;

/* Define the union U_HEAD_STADDR_CMPA */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    head_staddr_cmpa : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_HEAD_STADDR_CMPA;

/* Define the union U_CMPA_CTRL */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    cmpa_other_bit  : 26  ; /* [31:6] */
        unsigned int    semi_planar_en  : 1  ; /* [5] */
        unsigned int    cmpa_2bit_dis   : 1  ; /* [4] */
        unsigned int    bit10_expand_16 : 1  ; /* [3] */
        unsigned int    afbc_cmp_en     : 1  ; /* [2] */
        unsigned int    cmpa_out_format : 1  ; /* [1] */
        unsigned int    afbc_work_en    : 1  ; /* [0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_CMPA_CTRL;

/* Define the union U_DOMN_CLK_CFG_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_18              : 10  ; /* [31:22] */
        unsigned int    vpss_domn_clk_cfg   : 2  ; /* [21:20] */
        unsigned int    vctrl_domn_clk_cfg  : 2  ; /* [19:18] */
        unsigned int    cmp_domn_clk_cfg    : 2  ; /* [17:16] */
        unsigned int    sao_domn_clk_cfg    : 2  ; /* [15:14] */
        unsigned int    dblk_domn_clk_cfg   : 2  ; /* [13:12] */
        unsigned int    rcn_domn_clk_cfg    : 2  ; /* [11:10] */
        unsigned int    prf_domn_clk_cfg    : 2  ; /* [9:8] */
        unsigned int    prc_domn_clk_cfg    : 2  ; /* [7:6] */
        unsigned int    pmv_domn_clk_cfg    : 2  ; /* [5:4] */
        unsigned int    itrans_domn_clk_cfg : 2  ; /* [3:2] */
        unsigned int    sed_domn_clk_cfg    : 2  ; /* [1:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_DOMN_CLK_CFG_CNT;

/* Define the union U_WATERMARK_START_POS_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    watermark_start_pos : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_WATERMARK_START_POS_CNT;

/* Define the union U_WATERMARK_END_POS_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    watermark_end_pos : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_WATERMARK_END_POS_CNT;

/* Define the union U_SAFE_INT_STATE */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_19                        : 29  ; /* [31:3] */
        unsigned int    safe_intrms_vdh_part_dec_over : 1  ; /* [2] */
        unsigned int    safe_intrms_vdh_dec_err       : 1  ; /* [1] */
        unsigned int    safe_intrms_vdh_dec_over      : 1  ; /* [0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_SAFE_INT_STATE;

/* Define the union U_SAFE_INT_MASK */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_20                      : 29  ; /* [31:3] */
        unsigned int    safe_intm_vdh_part_dec_over : 1  ; /* [2] */
        unsigned int    safe_intm_vdh_dec_err       : 1  ; /* [1] */
        unsigned int    safe_intm_vdh_dec_over      : 1  ; /* [0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_SAFE_INT_MASK;

/* Define the union U_VDH_DEC_CYCLEPERPIC */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    dec_cycleperpic : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VDH_DEC_CYCLEPERPIC;

/* Define the union U_VDH_RD_BDWIDTH_PERPIC */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rd_bdwidth_perpic : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VDH_RD_BDWIDTH_PERPIC;

/* Define the union U_VDH_WR_BDWIDTH_PERPIC */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    wr_bdwidth_perpic : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VDH_WR_BDWIDTH_PERPIC;

/* Define the union U_VDH_RD_REQ_PERPIC */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rd_req_perpic : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VDH_RD_REQ_PERPIC;

/* Define the union U_VDH_WR_REQ_PERPIC */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    wr_req_perpic : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VDH_WR_REQ_PERPIC;

/* Define the union U_UV_STRIDE_1D */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_21       : 12  ; /* [31:20] */
        unsigned int    uv_stride_1d : 20  ; /* [19:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_UV_STRIDE_1D;

/* Define the union U_CFGINFO_ADDR_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    cfginfo_addr : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_CFGINFO_ADDR_CNT;

/* Define the union U_VIDEO_STANDARD_EN */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_22            : 16  ; /* [31:16] */
        unsigned int    video_standard_en : 16  ; /* [15:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VIDEO_STANDARD_EN;

/* Define the union U_MB0_QP_IN_CURR_PIC */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_23       : 27  ; /* [31:5] */
        unsigned int    currpicmb0qp : 5  ; /* [4:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_MB0_QP_IN_CURR_PIC;

/* Define the union U_SWITCH_ROUNDING */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_24         : 31  ; /* [31:1] */
        unsigned int    switchrounding : 1  ; /* [0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_SWITCH_ROUNDING;

/* Define the union U_VDH_RD_REQ_CYCLE_PERPIC_L */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rd_cnt_total[31:0] : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VDH_RD_REQ_CYCLE_PERPIC_L;

/* Define the union U_VDH_RD_REQ_CYCLE_PERPIC_H */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rd_cnt_total[63:31] : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VDH_RD_REQ_CYCLE_PERPIC_H;

/* Define the union U_VDH_WR_REQ_CYCLE_PERPIC_L */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    wr_cnt_total[31:0] : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VDH_WR_REQ_CYCLE_PERPIC_L;

/* Define the union U_VDH_WR_REQ_CYCLE_PERPIC_H */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    wr_cnt_total[63:32] : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VDH_WR_REQ_CYCLE_PERPIC_H;

/* Define the union U_EMAR_STATE2 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    emar_state2 : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_EMAR_STATE2;

/* Define the union U_EMAR_STATE3 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    emar_state3 : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_EMAR_STATE3;

/* Define the union U_EMAR_STATE4 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    emar_state4 : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_EMAR_STATE4;

/* Define the union U_DDR_INTERLEAVE_MODE */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_25              : 28  ; /* [31:4] */
        unsigned int    head_byte64_en      : 1  ; /* [3] */
        unsigned int    data_byte64_en      : 1  ; /* [2] */
        unsigned int    ddr_interleave_mode : 2  ; /* [1:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_DDR_INTERLEAVE_MODE;


//==============================================================================
/* Define the global struct */
typedef struct
{
    volatile U_VDH_START_CNT             VDH_START_CNT             ; /* 0 */
    volatile U_SLC_START_CNT             SLC_START_CNT             ; /* 4 */
    volatile U_BASIC_CFG0_CNT            BASIC_CFG0_CNT            ; /* 8 */
    volatile U_BASIC_CFG1_CNT            BASIC_CFG1_CNT            ; /* C */
    volatile U_AVM_ADDR_CNT              AVM_ADDR_CNT              ; /* 10 */
    volatile U_VAM_ADDR_CNT              VAM_ADDR_CNT              ; /* 14 */
    volatile U_STREAM_BASE_ADDR_CNT      STREAM_BASE_ADDR_CNT      ; /* 18 */
    volatile U_VDH_STATE_CNT             VDH_STATE_CNT             ; /* 1C */
    volatile U_NORM_INT_STATE            NORM_INT_STATE            ; /* 20 */
    volatile U_NORM_INT_MASK             NORM_INT_MASK             ; /* 24 */
    volatile U_VCTRL_STATE_CNT           VCTRL_STATE_CNT           ; /* 28 */
    volatile U_VDH_VERSION_ID            VDH_VERSION_ID            ; /* 2C */
    volatile U_CFMW_REG_CMP_THR          CFMW_REG_CMP_THR          ; /* 30 */
    volatile U_RPT_CNT_CNT               RPT_CNT_CNT               ; /* 34 */
    volatile U_VCTRL_TO_CNT              VCTRL_TO_CNT              ; /* 38 */
    volatile U_SED_TO_CNT                SED_TO_CNT                ; /* 3C */
    volatile U_IT_TO_CNT                 IT_TO_CNT                 ; /* 40 */
    volatile U_PMV_TO_CNT                PMV_TO_CNT                ; /* 44 */
    volatile U_PRC_TO_CNT                PRC_TO_CNT                ; /* 48 */
    volatile U_RCN_TO_CNT                RCN_TO_CNT                ; /* 4C */
    volatile U_DBLK_TO_CNT               DBLK_TO_CNT               ; /* 50 */
    volatile U_PPFD_TO_CNT               PPFD_TO_CNT               ; /* 54 */
    volatile U_FPGA_VERSION              FPGA_VERSION              ; /* 58 */
    volatile U_PART_OVER_INT_LEVEL       PART_OVER_INT_LEVEL       ; /* 5C */
    volatile U_YSTADDR_1D_CNT            YSTADDR_1D_CNT            ; /* 60 */
    volatile U_YSTRIDE_1D_CNT            YSTRIDE_1D_CNT            ; /* 64 */
    volatile U_UVOFFSET_1D_CNT           UVOFFSET_1D_CNT           ; /* 68 */
    volatile U_HEAD_OFFSET_CNT           HEAD_OFFSET_CNT           ; /* 6C */
    volatile U_LINE_NUM_STADDR_CNT       LINE_NUM_STADDR_CNT       ; /* 70 */
    volatile U_YSTRIDE_2BIT_CNT          YSTRIDE_2BIT_CNT          ; /* 74 */
    volatile U_YOFFSET_2BIT_CNT          YOFFSET_2BIT_CNT          ; /* 78 */
    volatile U_UVOFFSET_2BIT_CNT         UVOFFSET_2BIT_CNT         ; /* 7C */
    volatile U_YSTADDR_CMPA              YSTADDR_CMPA              ; /* 80 */
    volatile U_YSTRIDE_CMPA              YSTRIDE_CMPA              ; /* 84 */
    volatile U_UVOFFSET_CMPA             UVOFFSET_CMPA             ; /* 88 */
    volatile U_HEAD_STRIDE_CMPA          HEAD_STRIDE_CMPA          ; /* 8C */
    volatile U_LOSS_CMP_CFG              LOSS_CMP_CFG              ; /* 90 */
    volatile U_HEAD_STADDR_CMPA          HEAD_STADDR_CMPA          ; /* 94 */
    volatile U_CMPA_CTRL                 CMPA_CTRL                 ; /* 98 */
    volatile U_DOMN_CLK_CFG_CNT          DOMN_CLK_CFG_CNT          ; /* 9C */
    volatile U_WATERMARK_START_POS_CNT   WATERMARK_START_POS_CNT   ; /* A0 */
    volatile U_WATERMARK_END_POS_CNT     WATERMARK_END_POS_CNT     ; /* A4 */
    volatile U_SAFE_INT_STATE            SAFE_INT_STATE            ; /* A8 */
    volatile U_SAFE_INT_MASK             SAFE_INT_MASK             ; /* AC */
    volatile U_VDH_DEC_CYCLEPERPIC       VDH_DEC_CYCLEPERPIC       ; /* B0 */
    volatile U_VDH_RD_BDWIDTH_PERPIC     VDH_RD_BDWIDTH_PERPIC     ; /* B4 */
    volatile U_VDH_WR_BDWIDTH_PERPIC     VDH_WR_BDWIDTH_PERPIC     ; /* B8 */
    volatile U_VDH_RD_REQ_PERPIC         VDH_RD_REQ_PERPIC         ; /* BC */
    volatile U_VDH_WR_REQ_PERPIC         VDH_WR_REQ_PERPIC         ; /* C0 */
    volatile U_UV_STRIDE_1D              UV_STRIDE_1D              ; /* C4 */
    volatile U_CFGINFO_ADDR_CNT          CFGINFO_ADDR_CNT          ; /* C8 */
    volatile U_VIDEO_STANDARD_EN         VIDEO_STANDARD_EN         ; /* CC */
    volatile U_MB0_QP_IN_CURR_PIC        MB0_QP_IN_CURR_PIC        ; /* D0 */
    volatile U_SWITCH_ROUNDING           SWITCH_ROUNDING           ; /* D4 */
    volatile U_VDH_RD_REQ_CYCLE_PERPIC_L VDH_RD_REQ_CYCLE_PERPIC_L ; /* D8 */
    volatile U_VDH_RD_REQ_CYCLE_PERPIC_H VDH_RD_REQ_CYCLE_PERPIC_H ; /* DC */
    volatile U_VDH_WR_REQ_CYCLE_PERPIC_L VDH_WR_REQ_CYCLE_PERPIC_L ; /* E0 */
    volatile U_VDH_WR_REQ_CYCLE_PERPIC_H VDH_WR_REQ_CYCLE_PERPIC_H ; /* E4 */
    volatile U_EMAR_STATE2               EMAR_STATE2               ; /* E8 */
    volatile U_EMAR_STATE3               EMAR_STATE3               ; /* EC */
    volatile U_EMAR_STATE4               EMAR_STATE4               ; /* F0 */
    volatile U_DDR_INTERLEAVE_MODE       DDR_INTERLEAVE_MODE       ; /* F4 */

} S_vctrl_REGS_TYPE;

/* Declare the struct pointor of the module vctrl */
extern volatile S_vctrl_REGS_TYPE *gopvctrlAllReg;

/* Declare the functions that set the member value */
int iSetVDH_START_CNT_dec_start(unsigned int udec_start);
int iSetSLC_START_CNT_slc_grp_start(unsigned int uslc_grp_start);
int iSetBASIC_CFG0_CNT_vdh_safe_flag(unsigned int uvdh_safe_flag);
int iSetBASIC_CFG0_CNT_ld_qmatrix_flag(unsigned int uld_qmatrix_flag);
int iSetBASIC_CFG0_CNT_luma_histogram_en(unsigned int uluma_histogram_en);
int iSetBASIC_CFG0_CNT_luma_sum_en(unsigned int uluma_sum_en);
int iSetBASIC_CFG0_CNT_work_mode(unsigned int uwork_mode);
int iSetBASIC_CFG0_CNT_vop_type_detect_en(unsigned int uvop_type_detect_en);
int iSetBASIC_CFG0_CNT_coef_idx_detect_en(unsigned int ucoef_idx_detect_en);
int iSetBASIC_CFG0_CNT_ac_last_detect_en(unsigned int uac_last_detect_en);
int iSetBASIC_CFG0_CNT_marker_bit_detect_en(unsigned int umarker_bit_detect_en);
int iSetBASIC_CFG0_CNT_slc_grp_mode(unsigned int uslc_grp_mode);
int iSetBASIC_CFG0_CNT_mbamt_to_dec(unsigned int umbamt_to_dec);
int iSetBASIC_CFG1_CNT_ppfd_en(unsigned int uppfd_en);
int iSetBASIC_CFG1_CNT_compress_en(unsigned int ucompress_en);
int iSetBASIC_CFG1_CNT_dblk_1d_en(unsigned int udblk_1d_en);
int iSetBASIC_CFG1_CNT_line_num_oen(unsigned int uline_num_oen);
int iSetBASIC_CFG1_CNT_max_slcgrp_num(unsigned int umax_slcgrp_num);
int iSetBASIC_CFG1_CNT_mv_output_en(unsigned int umv_output_en);
int iSetBASIC_CFG1_CNT_fst_slc_grp(unsigned int ufst_slc_grp);
int iSetBASIC_CFG1_CNT_uv_order_en(unsigned int uuv_order_en);
int iSetBASIC_CFG1_CNT_mfd_mmu_en(unsigned int umfd_mmu_en);
int iSetBASIC_CFG1_CNT_vpss_info_en(unsigned int uvpss_info_en);
int iSetBASIC_CFG1_CNT_watermark_en(unsigned int uwatermark_en);
int iSetBASIC_CFG1_CNT_cfg1_reserved(unsigned int ucfg1_reserved);
int iSetBASIC_CFG1_CNT_video_standard(unsigned int uvideo_standard);
int iSetAVM_ADDR_CNT_av_msg_addr(unsigned int uav_msg_addr);
int iSetVAM_ADDR_CNT_va_msg_addr(unsigned int uva_msg_addr);
int iSetSTREAM_BASE_ADDR_CNT_stream_base_addr(unsigned int ustream_base_addr);
int iSetVDH_STATE_CNT_safe_intrs_vdh_part_dec_over(unsigned int usafe_intrs_vdh_part_dec_over);
int iSetVDH_STATE_CNT_safe_intrs_vdh_dec_err(unsigned int usafe_intrs_vdh_dec_err);
int iSetVDH_STATE_CNT_safe_intrs_vdh_dec_over(unsigned int usafe_intrs_vdh_dec_over);
int iSetVDH_STATE_CNT_intrs_vdh_part_dec_over(unsigned int uintrs_vdh_part_dec_over);
int iSetVDH_STATE_CNT_intrs_vdh_dec_err(unsigned int uintrs_vdh_dec_err);
int iSetVDH_STATE_CNT_intrs_vdh_dec_over(unsigned int uintrs_vdh_dec_over);
int iSetVDH_STATE_CNT_decoded_slice_num(unsigned int udecoded_slice_num);
int iSetNORM_INT_STATE_norm_intrms_vdh_part_dec_over(unsigned int unorm_intrms_vdh_part_dec_over);
int iSetNORM_INT_STATE_norm_intrms_vdh_dec_err(unsigned int unorm_intrms_vdh_dec_err);
int iSetNORM_INT_STATE_norm_intrms_vdh_dec_over(unsigned int unorm_intrms_vdh_dec_over);
int iSetNORM_INT_MASK_norm_intm_vdh_part_dec_over(unsigned int unorm_intm_vdh_part_dec_over);
int iSetNORM_INT_MASK_norm_intm_vdh_dec_err(unsigned int unorm_intm_vdh_dec_err);
int iSetNORM_INT_MASK_norm_intm_vdh_dec_over(unsigned int unorm_intm_vdh_dec_over);
int iSetVCTRL_STATE_CNT_vctrl_state(unsigned int uvctrl_state);
int iSetVDH_VERSION_ID_vdh_version_id(unsigned int uvdh_version_id);
int iSetCFMW_REG_CMP_THR_cfmw_reserved(unsigned int ucfmw_reserved);
int iSetCFMW_REG_CMP_THR_lst_msq_mb_num(unsigned int ulst_msq_mb_num);
int iSetCFMW_REG_CMP_THR_mb_offset_thr(unsigned int umb_offset_thr);
int iSetCFMW_REG_CMP_THR_y_dcmp_rate_mode(unsigned int uy_dcmp_rate_mode);
int iSetCFMW_REG_CMP_THR_uv_dcmp_rate_mode(unsigned int uuv_dcmp_rate_mode);
int iSetRPT_CNT_CNT_max_cnt_other(unsigned int umax_cnt_other);
int iSetRPT_CNT_CNT_max_cnt_prc(unsigned int umax_cnt_prc);
int iSetRPT_CNT_CNT_max_cnt_dblk_wr(unsigned int umax_cnt_dblk_wr);
int iSetRPT_CNT_CNT_max_cnt_dblk_rd(unsigned int umax_cnt_dblk_rd);
int iSetVCTRL_TO_CNT_vctrl_wr_to(unsigned int uvctrl_wr_to);
int iSetVCTRL_TO_CNT_vctrl_rd_to(unsigned int uvctrl_rd_to);
int iSetSED_TO_CNT_sed_wr_top_to(unsigned int used_wr_top_to);
int iSetSED_TO_CNT_sed_rd_top_to(unsigned int used_rd_top_to);
int iSetSED_TO_CNT_sed_rd_stream_to(unsigned int used_rd_stream_to);
int iSetIT_TO_CNT_it_wr_to(unsigned int uit_wr_to);
int iSetIT_TO_CNT_it_rd_to(unsigned int uit_rd_to);
int iSetPMV_TO_CNT_pmv_wr_to(unsigned int upmv_wr_to);
int iSetPMV_TO_CNT_pmv_rd_top_to(unsigned int upmv_rd_top_to);
int iSetPMV_TO_CNT_pmv_rd_col_to(unsigned int upmv_rd_col_to);
int iSetPRC_TO_CNT_prc_rd_to(unsigned int uprc_rd_to);
int iSetRCN_TO_CNT_rcn_wr_to(unsigned int urcn_wr_to);
int iSetRCN_TO_CNT_rcn_rd_to(unsigned int urcn_rd_to);
int iSetDBLK_TO_CNT_dblk_wr_to(unsigned int udblk_wr_to);
int iSetDBLK_TO_CNT_dblk_rd_to(unsigned int udblk_rd_to);
int iSetPPFD_TO_CNT_ppfd_wr_buf_to(unsigned int uppfd_wr_buf_to);
int iSetPPFD_TO_CNT_ppfd_rd_buf_to(unsigned int uppfd_rd_buf_to);
int iSetPPFD_TO_CNT_ppfd_rd_slice_to(unsigned int uppfd_rd_slice_to);
int iSetFPGA_VERSION_fpga_version_id(unsigned int ufpga_version_id);
int iSetPART_OVER_INT_LEVEL_part_over_int_level(unsigned int upart_over_int_level);
int iSetYSTADDR_1D_CNT_ystaddr_1d(unsigned int uystaddr_1d);
int iSetYSTRIDE_1D_CNT_ystride_reserved(unsigned int uystride_reserved);
int iSetYSTRIDE_1D_CNT_ystride_1d(unsigned int uystride_1d);
int iSetUVOFFSET_1D_CNT_uvoffset_1d(unsigned int uuvoffset_1d);
int iSetHEAD_OFFSET_CNT_head_offset(unsigned int uhead_offset);
int iSetLINE_NUM_STADDR_CNT_line_num_staddr(unsigned int uline_num_staddr);
int iSetYSTRIDE_2BIT_CNT_ystride_2bit_reserved(unsigned int uystride_2bit_reserved);
int iSetYSTRIDE_2BIT_CNT_ystride_2bit(unsigned int uystride_2bit);
int iSetYOFFSET_2BIT_CNT_yoffset_2bit(unsigned int uyoffset_2bit);
int iSetUVOFFSET_2BIT_CNT_uvoffset_2bit(unsigned int uuvoffset_2bit);
int iSetYSTADDR_CMPA_ystaddr_cmpa(unsigned int uystaddr_cmpa);
int iSetYSTRIDE_CMPA_ystride_cmpa(unsigned int uystride_cmpa);
int iSetUVOFFSET_CMPA_uvoffset_cmpa(unsigned int uuvoffset_cmpa);
int iSetHEAD_STRIDE_CMPA_head_stride_cmpa(unsigned int uhead_stride_cmpa);
int iSetLOSS_CMP_CFG_bit10_2bit_dis(unsigned int ubit10_2bit_dis);
int iSetLOSS_CMP_CFG_loss_cmp_en(unsigned int uloss_cmp_en);
int iSetHEAD_STADDR_CMPA_head_staddr_cmpa(unsigned int uhead_staddr_cmpa);
int iSetCMPA_CTRL_cmpa_other_bit(unsigned int ucmpa_other_bit);
int iSetCMPA_CTRL_semi_planar_en(unsigned int usemi_planar_en);
int iSetCMPA_CTRL_cmpa_2bit_dis(unsigned int ucmpa_2bit_dis);
int iSetCMPA_CTRL_bit10_expand_16(unsigned int ubit10_expand_16);
int iSetCMPA_CTRL_afbc_cmp_en(unsigned int uafbc_cmp_en);
int iSetCMPA_CTRL_cmpa_out_format(unsigned int ucmpa_out_format);
int iSetCMPA_CTRL_afbc_work_en(unsigned int uafbc_work_en);
int iSetDOMN_CLK_CFG_CNT_vpss_domn_clk_cfg(unsigned int uvpss_domn_clk_cfg);
int iSetDOMN_CLK_CFG_CNT_vctrl_domn_clk_cfg(unsigned int uvctrl_domn_clk_cfg);
int iSetDOMN_CLK_CFG_CNT_cmp_domn_clk_cfg(unsigned int ucmp_domn_clk_cfg);
int iSetDOMN_CLK_CFG_CNT_sao_domn_clk_cfg(unsigned int usao_domn_clk_cfg);
int iSetDOMN_CLK_CFG_CNT_dblk_domn_clk_cfg(unsigned int udblk_domn_clk_cfg);
int iSetDOMN_CLK_CFG_CNT_rcn_domn_clk_cfg(unsigned int urcn_domn_clk_cfg);
int iSetDOMN_CLK_CFG_CNT_prf_domn_clk_cfg(unsigned int uprf_domn_clk_cfg);
int iSetDOMN_CLK_CFG_CNT_prc_domn_clk_cfg(unsigned int uprc_domn_clk_cfg);
int iSetDOMN_CLK_CFG_CNT_pmv_domn_clk_cfg(unsigned int upmv_domn_clk_cfg);
int iSetDOMN_CLK_CFG_CNT_itrans_domn_clk_cfg(unsigned int uitrans_domn_clk_cfg);
int iSetDOMN_CLK_CFG_CNT_sed_domn_clk_cfg(unsigned int used_domn_clk_cfg);
int iSetWATERMARK_START_POS_CNT_watermark_start_pos(unsigned int uwatermark_start_pos);
int iSetWATERMARK_END_POS_CNT_watermark_end_pos(unsigned int uwatermark_end_pos);
int iSetSAFE_INT_STATE_safe_intrms_vdh_part_dec_over(unsigned int usafe_intrms_vdh_part_dec_over);
int iSetSAFE_INT_STATE_safe_intrms_vdh_dec_err(unsigned int usafe_intrms_vdh_dec_err);
int iSetSAFE_INT_STATE_safe_intrms_vdh_dec_over(unsigned int usafe_intrms_vdh_dec_over);
int iSetSAFE_INT_MASK_safe_intm_vdh_part_dec_over(unsigned int usafe_intm_vdh_part_dec_over);
int iSetSAFE_INT_MASK_safe_intm_vdh_dec_err(unsigned int usafe_intm_vdh_dec_err);
int iSetSAFE_INT_MASK_safe_intm_vdh_dec_over(unsigned int usafe_intm_vdh_dec_over);
int iSetVDH_DEC_CYCLEPERPIC_dec_cycleperpic(unsigned int udec_cycleperpic);
int iSetVDH_RD_BDWIDTH_PERPIC_rd_bdwidth_perpic(unsigned int urd_bdwidth_perpic);
int iSetVDH_WR_BDWIDTH_PERPIC_wr_bdwidth_perpic(unsigned int uwr_bdwidth_perpic);
int iSetVDH_RD_REQ_PERPIC_rd_req_perpic(unsigned int urd_req_perpic);
int iSetVDH_WR_REQ_PERPIC_wr_req_perpic(unsigned int uwr_req_perpic);
int iSetUV_STRIDE_1D_uv_stride_1d(unsigned int uuv_stride_1d);
int iSetCFGINFO_ADDR_CNT_cfginfo_addr(unsigned int ucfginfo_addr);
int iSetVIDEO_STANDARD_EN_video_standard_en(unsigned int uvideo_standard_en);
int iSetMB0_QP_IN_CURR_PIC_currpicmb0qp(unsigned int ucurrpicmb0qp);
int iSetSWITCH_ROUNDING_switchrounding(unsigned int uswitchrounding);
int iSetVDH_RD_REQ_CYCLE_PERPIC_L_rd_cnt_total[31:0](unsigned int urd_cnt_total[31:0]);
int iSetVDH_RD_REQ_CYCLE_PERPIC_H_rd_cnt_total[63:31](unsigned int urd_cnt_total[63:31]);
int iSetVDH_WR_REQ_CYCLE_PERPIC_L_wr_cnt_total[31:0](unsigned int uwr_cnt_total[31:0]);
int iSetVDH_WR_REQ_CYCLE_PERPIC_H_wr_cnt_total[63:32](unsigned int uwr_cnt_total[63:32]);
int iSetEMAR_STATE2_emar_state2(unsigned int uemar_state2);
int iSetEMAR_STATE3_emar_state3(unsigned int uemar_state3);
int iSetEMAR_STATE4_emar_state4(unsigned int uemar_state4);
int iSetDDR_INTERLEAVE_MODE_head_byte64_en(unsigned int uhead_byte64_en);
int iSetDDR_INTERLEAVE_MODE_data_byte64_en(unsigned int udata_byte64_en);
int iSetDDR_INTERLEAVE_MODE_ddr_interleave_mode(unsigned int uddr_interleave_mode);

#endif // __VCTRL_C_UNION_DEFINE_H__
